#!/bin/bash
set -eu
THIS="$(readlink -f "$0")"
THISDIR="$(dirname "${THIS}")"
SUT="$(dirname "${THISDIR}")/makeself.sh"

setupTests() {
  temp=`mktemp -d -t XXXXX`
  cd "$temp"
  mkdir archive
  touch archive/file

  # $SUT archive makeself-test.run "Test $1" declare -p "${1}"
  $SUT archive makeself-test.run "Test $1" echo \\\"\${${1}}\\\"
}

testArchiveDir()
{
  setupTests ARCHIVE_DIR
  local ans=$'./complicated\n dir\twith  spaces'
  mkdir "${ans}"
  mv ./makeself-test.run "${ans}/"
  actual_archive_dir="$("${ans}/makeself-test.run" --quiet)"

  assertEquals "${actual_archive_dir}" "${ans}"
}

testTmpRoot()
{
  setupTests TMPROOT
  local ans="${temp}"$'/complicated\n dir\twith  spaces'
  mkdir -p "${ans}"

  actual_tmp_root="$(TMPDIR="${ans}" "./makeself-test.run" --quiet)"

  assertEquals "${actual_tmp_root}" "${ans}"
}

testUserPWD()
{
  setupTests USER_PWD
  local ans="${temp}"$'/complicated\n dir\twith  spaces'
  mkdir -p "${ans}"
  cd "${ans}"

  actual_user_pwd="$("${temp}/makeself-test.run" --quiet)"

  assertEquals "${actual_user_pwd}" "${ans}"
}

# Load and run shUnit2.
source "./shunit2/shunit2"
